// 获取小程序实例
const app = getApp()

Page({
  // 页面的初始数据
  data: {
    oldPassword: '',  // 存储原密码
    newPassword: ''   // 存储新密码
  },

  // 页面显示时触发
  onShow() {
    // 设置页面标题
    wx.setNavigationBarTitle({
      title: '修改密码'
    })
  },

  // 处理输入框输入事件
  handleInput(e) {
    // 获取输入框类型（oldPassword 或 newPassword）
    const type = e.currentTarget.dataset.type
    // 使用数组索引语法动态设置对应的数据
    this.setData({
      [type]: e.detail.value
    })
  },

  // 处理表单提交
  handleSubmit() {
    // 解构获取表单数据
    const { oldPassword, newPassword } = this.data
    // 从本地存储获取用户信息
    const userInfo = wx.getStorageSync('userInfo')
    
    // 表单验证：检查是否填写完整
    if (!oldPassword || !newPassword) {
      wx.showToast({
        title: '请填写完整信息',
        icon: 'none'
      })
      return
    }

    // 显示加载提示
    wx.showLoading({
      title: '修改中'
    })

    // 调用云函数修改密码
    wx.cloud.callFunction({
      name: 'updatePassword',  // 云函数名称
      data: {
        name: userInfo.username,  // 传递用户名
        oldPassword,             // 传递原密码
        newPassword             // 传递新密码
      },
      // 请求成功回调
      success: res => {
        // 隐藏加载提示
        wx.hideLoading()
        if (res.result && res.result.success) {
          // 修改成功的处理
          wx.showToast({
            title: '修改成功，请重新登录',
            icon: 'success',
            duration: 2000,
            success: () => {
              // 清除本地存储的用户信息
              wx.removeStorageSync('userInfo')
              // 清除全局用户信息
              getApp().globalData.userInfo = null
              
              // 2秒后跳转到登录页
              setTimeout(() => {
                wx.reLaunch({
                  url: '/pages/login/login'
                })
              }, 2000)
            }
          })
        } else {
          // 修改失败的提示
          wx.showToast({
            title: res.result.msg || '修改失败',
            icon: 'none'
          })
        }
      },
      // 请求失败回调
      fail: err => {
        // 隐藏加载提示
        wx.hideLoading()
        // 显示错误提示
        wx.showToast({
          title: '修改失败，请重试',
          icon: 'none'
        })
      }
    })
  }
}) 